home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / edit / xvidoc.zip / SUMMARY.LST < prev    next >
File List  |  1992-07-28  |  25KB  |  661 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.          Summary of Differences between Vi and Xvi
  11.  
  12.  
  13.                    Chris Downey
  14.                 John Downey
  15.  
  16.  
  17.  
  18.            Xvi (pronounced _e_c_k_s-_v_e_e-_e_y_e) is a free, portable,
  19.       multi-window implementation of the popular UNIX|- editor
  20.       vi.
  21.  
  22.       This document summarises the  differences  between  the
  23.       ``real''  vi  and  xvi.   These differences are divided
  24.       into three groups: _u_n_i_m_p_l_e_m_e_n_t_e_d _f_e_a_t_u_r_e_s,  _d_i_f_f_e_r_e_n_c_e_s
  25.       and _e_n_h_a_n_c_e_m_e_n_t_s, and each of these is described in the
  26.       following sections.
  27.  
  28.  
  29.  
  30.      _1.  _U_n_i_m_p_l_e_m_e_n_t_e_d _F_e_a_t_u_r_e_s
  31.  
  32.      _1._1.  _E_x _M_o_d_e
  33.  
  34.      The main area in which xvi is lacking is vi's _e_x mode,  which  is
  35.      not implemented at all (and neither are edit, e, and open modes).
  36.      However, many of the ex commands are available in  xvi  as  colon
  37.      commands;  the  colon commands that have not been implemented are
  38.      mostly those which offer the same functionality as other commands
  39.      in vi mode.
  40.  
  41.      Specifically, the following ex commands are not implemented,  and
  42.      probably never will be within xvi:
  43.  
  44.          _i_n_s_e_r_t         _u_n_d_o           _e_x
  45.          _c_h_a_n_g_e         _o_p_e_n           |
  46.          _a_p_p_e_n_d         _z
  47.  
  48.      while these ex commands, although not currently implemented,  may
  49.      be added as colon commands at some time in the future:
  50.  
  51.          _a_b_b_r_e_v_i_a_t_e     _r_e_c_o_v_e_r        _w_r_i_t_e>>
  52.          _u_n_a_b_b_r_e_v_i_a_t_e   _j_o_i_n
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.      _________________________
  60.      |- UNIX is a trademark of Bell Laboratories.
  61.  
  62.  
  63.  
  64.      _2_5_t_h _S_e_p_t_e_m_b_e_r _1_9_9_2                                        _P_a_g_e _1
  65.  
  66.  
  67.  
  68.  
  69.  
  70.      _2                       _S_u_m_m_a_r_y _o_f _D_i_f_f_e_r_e_n_c_e_s _b_e_t_w_e_e_n _V_i _a_n_d _X_v_i
  71.  
  72.  
  73.      _1._2.  _V_i _c_o_m_m_a_n_d_s
  74.  
  75.      The following vi mode  commands  are  not  implemented,  although
  76.      there is no real reason why they shouldn't be:
  77.  
  78.          _U              =
  79.  
  80.      while this one is inappropriate in  the  context  of  xvi,  since
  81.      there is no _e_x mode:
  82.  
  83.          _Q
  84.  
  85.  
  86.      _1._3.  _P_a_r_a_m_e_t_e_r_s
  87.  
  88.      The following parameters have not been implemented, and  probably
  89.      won't be:
  90.  
  91.          _a_d_a            _l_i_s_p           _r_e_d_r_a_w
  92.          _a_d_a_p_a_t_h        _m_e_s_g           _s_l_o_w_o_p_e_n
  93.          _a_u_t_o_p_r_i_n_t      _m_o_d_e_l_i_n_e       _t_e_r_m
  94.          _b_e_a_u_t_i_f_y       _o_p_e_n           _t_e_r_s_e
  95.          _d_i_r_e_c_t_o_r_y      _o_p_t_i_m_i_z_e       _t_t_y_t_y_p_e
  96.          _e_d_c_o_m_p_a_t_i_b_l_e   _p_r_o_m_p_t         _w_i_n_d_o_w
  97.          _h_a_r_d_t_a_b_s
  98.  
  99.      while these parameters may well be implemented at some point:
  100.  
  101.          _a_u_t_o_w_r_i_t_e      _s_c_r_o_l_l         _w_a_r_n
  102.          _e_r_r_o_r_b_e_l_l_s     _s_o_u_r_c_e_a_n_y      _w_r_i_t_e_a_n_y
  103.  
  104.  
  105.      _1._4.  _M_i_s_c_e_l_l_a_n_e_o_u_s
  106.  
  107.      Some features of certain commands do not  work  as  they  should.
  108.      Specifically:
  109.  
  110.      o+    Repeat counts before insertions don't work.
  111.  
  112.      o+    Appending to named buffers is not yet implemented.
  113.  
  114.      o+    Typing ^Q in input mode does not mean the  same  as  ^V;  it
  115.       just  inserts  a `^Q', assuming it gets as far as the editor
  116.       at all.
  117.  
  118.      o+    Typing ^W in insert mode does not back up one word as in vi.
  119.  
  120.      o+    It is not possible to  interrupt  the  editor  while  it  is
  121.       performing  certain  operations.   If  you  start  off a big
  122.       global command, you have to wait for it to finish.
  123.  
  124.      o+    Flags and counts after colon commands are not supported.
  125.  
  126.  
  127.  
  128.  
  129.  
  130.      _P_a_g_e _2                                        _2_5_t_h _S_e_p_t_e_m_b_e_r _1_9_9_2
  131.  
  132.  
  133.  
  134.  
  135.  
  136.      _S_u_m_m_a_r_y _o_f _D_i_f_f_e_r_e_n_c_e_s _b_e_t_w_e_e_n _V_i _a_n_d _X_v_i                       _3
  137.  
  138.  
  139.  
  140.      o+    It is not possible to read the output of  a  system  command
  141.       using
  142.  
  143.           :r !_c_o_m_m_a_n_d
  144.  
  145.       or to write into a command using
  146.  
  147.           :w !_c_o_m_m_a_n_d
  148.  
  149.  
  150.      o+    The :substitute command does not support splitting of lines.
  151.  
  152.      o+    Regular expressions, although  implemented  (see  later  for
  153.       more  details), do not support the ~ character; also, the \u
  154.       and \l escape sequences are not supported on the  right-hand
  155.       side of a substitute replacement pattern.
  156.  
  157.      o+    The :global command only supports the commands [lps&~d].
  158.  
  159.      o+    Undo does not work properly when applied to macros (either @
  160.       or  :map); it should undo all the changes made by the macro,
  161.       but in fact only  the  last  command  within  the  macro  is
  162.       undone.
  163.  
  164.      _2.  _E_n_h_a_n_c_e_m_e_n_t_s
  165.  
  166.      The following extensions are available in xvi.
  167.  
  168.      _2._1.  _P_a_r_a_m_e_t_e_r _H_a_n_d_l_i_n_g
  169.  
  170.      Xvi supports 5 types of  parameter:  as  well  as  vi's  _n_u_m_e_r_i_c,
  171.      _s_t_r_i_n_g  and  _b_o_o_l_e_a_n, it also has _e_n_u_m_e_r_a_t_e_d and _l_i_s_t types.  The
  172.      former is used for e.g. format and regextype, while the latter is
  173.      currently  only  used  for tags.  The advantage of the _e_n_u_m_e_r_a_t_e_d
  174.      type is that if you try to set  an  illegal  value,  the  set  of
  175.      correct  values  will  be  displayed, which is very useful if you
  176.      have forgotten what the values may be.  (Try :set preserve to see
  177.      an example of this.)
  178.  
  179.      _2._2.  _W_i_n_d_o_w_s
  180.  
  181.      Xvi supports multiple _b_u_f_f_e_r_s  and  _w_i_n_d_o_w_s.   A  _b_u_f_f_e_r  is  the
  182.      object which holds a file in memory, while a _w_i_n_d_o_w is an area of
  183.      the screen which shows part of a buffer.  Note that every  window
  184.      references a buffer, even if no file is being edited.
  185.  
  186.      The following commands are available for operating on buffers and
  187.      windows:
  188.  
  189.      :buffer   create a new buffer in a new window; can be followed by
  190.            a filename, which will be edited in the new buffer.
  191.  
  192.      :split    create  a  new  window  onto  the  current  buffer   by
  193.            splitting   the   current  window  in  half.   The  two
  194.  
  195.  
  196.      _2_5_t_h _S_e_p_t_e_m_b_e_r _1_9_9_2                                        _P_a_g_e _3
  197.  
  198.  
  199.  
  200.  
  201.  
  202.      _4                       _S_u_m_m_a_r_y _o_f _D_i_f_f_e_r_e_n_c_e_s _b_e_t_w_e_e_n _V_i _a_n_d _X_v_i
  203.  
  204.  
  205.            resulting windows are similar  to  _v_i_e_w_p_o_r_t_s  on  to  a
  206.            single  editing  buffer,  in  that  changes made in one
  207.            window are reflected in the other one.
  208.  
  209.      :close    close the current window; will also close the buffer if
  210.            this is the last window onto it.
  211.  
  212.      :x / ZZ   close only the current window.  If the  window  is  the
  213.            only  one onto the buffer, the buffer will be closed as
  214.            well, writing it first if it is modified.  Hence, for a
  215.            single window, this command does the same as in vi.
  216.  
  217.      g         move to the next window.  This is normally  the  window
  218.            directly  below  the  current one on the screen, or the
  219.            top window on the screen if the current window  is  the
  220.            bottom one.
  221.  
  222.      ^W        increase the size of the current window (may be given a
  223.            numeric prefix, default is one line).
  224.  
  225.      ^T        decrease the size of the current window (may be given a
  226.            numeric prefix, default is one line).
  227.  
  228.      ^O        make the current window as large as possible.
  229.  
  230.      ^]        as  for  vi,  but  creates  a  new  buffer  window   if
  231.            appropriate (and if autosplit allows).
  232.  
  233.      Note that the :quit command quits out of the editor, not out of a
  234.      window.   The  :close command is thus the equivalent of :quit for
  235.      windows.  There is no equivalent  of  :x  or  ZZ  for